home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 February: Tool Chest / Dev.CD Feb 94.toast / New System Software Extensions / QuickDraw™ GX v1.0ß2 / Interfaces & Libraries / interfaces / PrintingManager.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-07-29  |  23.8 KB  |  914 lines  |  [TEXT/MPS ]

  1. /* ------------------------------------------------------------------------------
  2.  
  3. FILENAME
  4.     PrintingManager.h
  5.  
  6. DESCRIPTION
  7.         This file defines all the public level data types
  8.         and interface calls for the Printing Manager.
  9.     
  10. COPYRIGHT
  11.      © Apple Computer, Inc. 1990, 1991, 1992, 1993
  12.      All rights reserved. 
  13.  
  14. -------------------------------------------------------------------------------- */
  15.  
  16. #ifndef __PRINTINGMANAGER__
  17. #define __PRINTINGMANAGER__
  18.  
  19.  
  20. #ifndef __PRINTING__
  21.     #include <PrintTraps.h>
  22. #endif
  23.  
  24. #ifndef __FILES__
  25.     #include <Files.h>
  26. #endif
  27.  
  28. #ifndef __COLLECTIONMANAGER__
  29.     #include <Collections.h>
  30. #endif
  31.  
  32. #ifndef __PRINTINGERRORS__
  33.     #include <PrintingErrors.h>
  34. #endif
  35.  
  36. #ifndef graphicsTypesIncludes
  37.     #include <graphics types.h>
  38. #endif
  39.  
  40. #ifndef fontTypesIncludes
  41.     #include <font types.h>
  42. #endif
  43.  
  44. #ifndef scalerTypeIncludes
  45.     #include <scaler types.h>
  46. #endif
  47.  
  48. /* ------------------------------------------------------------------------------
  49.  
  50.                             Printing Manager API Contants and Types
  51.  
  52. -------------------------------------------------------------------------------- */
  53.  
  54.  
  55.  
  56. /* GX Printing Manager Gestalt Selector... */
  57.  
  58.  
  59. #define gestaltGXPrintingMgrVersion 'pmgr'
  60.  
  61.  
  62. /*--------------------------*/
  63. /* abstract data types...   */
  64. /*--------------------------*/
  65.  
  66.  
  67.  
  68. typedef struct gxPrivatePrinterRecord *gxPrinter;
  69. typedef struct    gxPrivateJobRecord *gxJob;
  70. typedef struct gxPrivateFormatRecord *gxFormat;
  71. typedef struct gxPrivatePaperTypeRecord *gxPaperType;
  72. typedef struct gxPrivatePrintFileRecord *gxPrintFile;
  73.  
  74.  
  75.  
  76. /*----------------------------------------*/
  77. /* new function constants and types...    */
  78. /*----------------------------------------*/
  79.  
  80.  
  81.  
  82. typedef Boolean gxLoopStatus;
  83.  
  84. enum {                        // possible values for LoopStatus
  85.     gxStopLooping = false,
  86.     gxKeepLooping = true
  87. };
  88.  
  89. typedef pascal gxLoopStatus (*gxViewDeviceProc) (gxViewDevice, void *refCon);
  90. typedef pascal gxLoopStatus (*gxFormatProc) (gxFormat, void *refCon);
  91. typedef pascal gxLoopStatus (*gxPaperTypeProc) (gxPaperType, void *refCon);
  92.  
  93. typedef pascal OSErr (*gxPrintingFlattenProc) (long size, void *data, void *refCon);
  94.  
  95.  
  96.  
  97. /*----------------------------------------------*/
  98. /* printing collection constants and types...    */
  99. /*----------------------------------------------*/
  100.  
  101.  
  102. // The following constants are used to set collection item flags in printing collections.
  103. // The Printing Manager purges certain items whenever a driver switch occurs.
  104. // If the formatting driver changes, all items marked as gxVolatileFormattingDriverCategory
  105. // will be purged.  If the output driver changes, all items marked as
  106. // gxVolatileOutputDriverCategory will be purged.
  107. // Note that to prevent items from being flattened when GXFlattenJob is called, you should
  108. // unset the collectionPersistenceBit (defined in Collections.h), which is on by default.
  109.  
  110.  
  111. typedef short gxCollectionCategory;        // stored in collection items' user attribute bits
  112.  
  113. enum {
  114.     gxNoCollectionCategory            = (gxCollectionCategory) 0x0000,
  115.     gxOutputDriverCategory            = (gxCollectionCategory) 0x0001,
  116.     gxFormattingDriverCategory        = (gxCollectionCategory) 0x0002,
  117.     gxDriverVolatileCategory        = (gxCollectionCategory) 0x0004,
  118.     
  119.     gxVolatileOutputDriverCategory = gxOutputDriverCategory + gxDriverVolatileCategory,
  120.     gxVolatileFormattingDriverCategory = gxFormattingDriverCategory + gxDriverVolatileCategory
  121. };
  122.  
  123.  
  124.  
  125. /*-----------------------------*/
  126. /* printing collection tags... */
  127. /*-----------------------------*/
  128.  
  129.  
  130.  
  131. enum { gxPrintingTagID = -28672 };            // all pre-defined tags have this ID
  132.  
  133.  
  134.  
  135. /*--------------------------*/
  136. /* job collection tags...   */
  137. /*--------------------------*/
  138.  
  139.  
  140.  
  141. enum { gxJobTag = 'job ' };
  142.  
  143.     enum {                                         // priorities for jobs
  144.         gxPrintJobUrgent    = 0x00000001,
  145.         gxPrintJobAtTime    = 0x00000002, 
  146.         gxPrintJobASAP        = 0x00000003
  147.     };
  148.     
  149.     enum { gxPrintJobHoldingBit = 0x00001000 };    // reserved bit in the priority field means the job is on hold
  150.     
  151.     enum {
  152.         gxPrintJobHolding            = (gxPrintJobHoldingBit + gxPrintJobASAP),
  153.         gxPrintJobHoldingAtTime    = (gxPrintJobHoldingBit + gxPrintJobAtTime),
  154.         gxPrintJobHoldingUrgent    = (gxPrintJobHoldingBit + gxPrintJobUrgent)
  155.     };
  156.     
  157.     enum {                                        // ===== Job Alert User constants (jobAlert field) =====
  158.         gxNoPrintTimeAlert    =    0,                    // don't alert user when we print
  159.         gxAlertBefore            =    1,                    // alert user before we print
  160.         gxAlertAfter            =    2,                    //    alert user after we print
  161.         gxAlertBothTimes        =    3                    //    alert before and after we print
  162.     };
  163.         
  164.     enum {                                        // ===== Job Timeout constants (jobTimeout field) =====
  165.         gxThirtySeconds        =    1800,                // 30 seconds in ticks
  166.         gxTwoMinutes            =    7200                // 2 minutes in ticks
  167.     };    
  168.  
  169.     typedef struct {
  170.         long    numPages;
  171.         long    priority;
  172.         long    timeToPrint;
  173.         long    jobTimeout;                // in ticks
  174.         long    firstPageToPrint;        // start printing from this page
  175.         short    jobAlert;
  176.         Str31    appName;
  177.         Str31 documentName;
  178.         Str31 userName;
  179.     } gxJobInfo;
  180.  
  181. enum { gxCollationTag = 'sort' };
  182.  
  183.     typedef struct {
  184.         Boolean collation;                    // true if copies are to be collated
  185.     } gxCollationInfo;
  186.  
  187. enum { gxCopiesTag = 'copy' };
  188.  
  189.     typedef struct {
  190.         long copies;                            // number of copies of document to print
  191.     } gxCopiesInfo;
  192.  
  193. enum { gxPageRangeTag = 'rang' };
  194.  
  195.     enum {                                        // for optionChosen field in SimplePageRangeInfo
  196.         gxDefaultPageRange        = (char) 0,
  197.         gxReplacePageRange        = (char) 1,
  198.         gxCustomizePageRange        = (char) 2
  199.     };
  200.  
  201.     typedef struct {
  202.         char            optionChosen;                    // from options listed above
  203.         Boolean        printAll;                        // true if user wants to print all pages
  204.         long            fromPage;                        // for gxDefaultPageRange, current value
  205.         long            toPage;                            // for gxDefaultPageRange, current value
  206.     } gxSimplePageRangeInfo;
  207.  
  208.     typedef struct {
  209.         gxSimplePageRangeInfo    simpleRange;        // info which will be returned for GetJobPageRange        
  210.         Str31                            fromString;            // for gxCustomizePageRange, current value
  211.         Str31                            toString;            // for gxCustomizePageRange, current value
  212.         long                            minFromPage;        // for gxDefaultPageRange, we parse with this, ignored if nil
  213.         long                            maxToPage;            // for gxDefaultPageRange, we parse with this, ignored if nil
  214.         char                            replaceString[1];    // for gxReplacePageRange, string to display
  215.     } gxPageRangeInfo;
  216.  
  217. enum { gxQualityTag = 'qual' };
  218.  
  219.     typedef struct {
  220.         Boolean    disableQuality;            // true to disable standard quality controls
  221.         short        defaultQuality;
  222.         short        currentQuality;
  223.         short        qualityCount;                // number of quality menu items in popup menu
  224.         char        qualityNames[1];            // array of packed pascal strings for popup menu titles
  225.     } gxQualityInfo;
  226.  
  227. enum { gxFileDestinationTag = 'dest' };
  228.  
  229.     typedef struct {
  230.         Boolean toFile;                        // true if destination is a file
  231.     } gxFileDestinationInfo;
  232.  
  233. enum { gxFileLocationTag = 'floc' };
  234.  
  235.     typedef struct {
  236.         FSSpec fileSpec;                        // location to put file, if destination is file
  237.     } gxFileLocationInfo;
  238.  
  239. enum { gxFileFormatTag = 'ffmt' };
  240.  
  241.     typedef struct {
  242.         Str31 fileFormatName;                // name of file format if destination is file
  243.     } gxFileFormatInfo;
  244.  
  245. enum { gxFileFontsTag = 'incf' };
  246.  
  247.     typedef struct {
  248.         Boolean includeFonts;                // true if including fonts, if destination is file
  249.     } gxFileFontsInfo;
  250.  
  251. enum { gxPaperFeedTag = 'feed' };
  252.  
  253.     typedef struct {
  254.         Boolean    autoFeed;                    // true if automatic feed, false if manual
  255.     } gxPaperFeedInfo;
  256.  
  257. typedef long gxTrayIndex;                        // type of tray index reference
  258.  
  259. enum { gxTrayFeedTag = 'tray' };            // public Printing Manager tray setting
  260.  
  261.     typedef struct {
  262.         gxTrayIndex feedTrayIndex;            // tray to feed paper from
  263.     } gxTrayFeedInfo;
  264.  
  265. enum { gxManualFeedTag = 'manf' };
  266.  
  267.     typedef struct {
  268.         long    numPaperTypeNames;            // number of paperTypes to manually feed
  269.         Str31    paperTypeNames[1];            // array of names of paperTypes to manually feed
  270.     } gxManualFeedInfo;
  271.  
  272. enum { gxNormalMappingTag = 'nmap' };
  273.  
  274.     typedef struct {
  275.         Boolean normalPaperMapping;        // true if not overriding normal paper mapping
  276.     } gxNormalMappingInfo;
  277.  
  278. enum { gxSpecialMappingTag = 'smap' };
  279.  
  280.     enum {                                        // for paperMapping field in SpecialMappingInfo
  281.         gxRedirectPages            = (char) 1,
  282.         gxScalePages                = (char) 2,
  283.         gxTilePages                = (char) 3
  284.     };
  285.  
  286.     typedef struct {
  287.         char specialMapping;                    // enumerated redirect, scale or tile setting
  288.     } gxSpecialMappingInfo;
  289.  
  290. enum { gxTrayMappingTag = 'tmap' };
  291.  
  292.     typedef struct {
  293.         gxTrayIndex mapPaperToTray;            // tray to map all paper to
  294.     } gxTrayMappingInfo;
  295.  
  296. enum { gxPaperMappingTag = 'pmap' };
  297.  
  298.     // This collection item contains a flattened paper type resource
  299.  
  300. enum { gxPrintPanelTag = 'ppan' };
  301.  
  302.     typedef struct {
  303.         Str31 startPanelName;                // name of starting panel in job print dialog
  304.     } gxPrintPanelInfo;
  305.  
  306. enum { gxFormatPanelTag = 'fpan' };
  307.  
  308.     typedef struct {
  309.         Str31 startPanelName;                // name of starting panel in format dialog
  310.     } gxFormatPanelInfo;
  311.  
  312.  
  313.  
  314. /*--------------------------*/
  315. /* format collection tags...*/
  316. /*--------------------------*/
  317.  
  318.  
  319.  
  320. enum { gxPaperTypeLockTag = 'ptlk' };        // paperType lock tag
  321.  
  322.     typedef struct {
  323.         Boolean paperTypeLocked;            // true if format's paperType is locked
  324.     } gxPaperTypeLockInfo;
  325.  
  326. enum { gxOrientationTag = 'layo' };
  327.  
  328.     enum {                                        // for orientation field in orientationTag
  329.         gxPortraitLayout                 = (char) 0,
  330.         gxLandscapeLayout             = (char) 1,
  331.         gxRotatedPortraitLayout     = (char) 2,
  332.         gxRotatedLandscapeLayout     = (char) 3
  333.     };
  334.     
  335.     typedef struct {
  336.         char orientation;                        // an enumerated orientation value
  337.     } gxOrientationInfo;
  338.  
  339. enum { gxScalingTag = 'scal' };
  340.  
  341.     typedef struct {
  342.         fixed horizontalScaleFactor;        // current horizontal scaling factor
  343.         fixed verticalScaleFactor;            // current vertical scaling factor
  344.         short minScaling;                        // minimum current scaling
  345.         short maxScaling;                        // maximum current scaling
  346.     } gxScalingInfo;
  347.  
  348. enum { gxDirectModeTag = 'dirm' };
  349.  
  350.     typedef struct {
  351.         Boolean directModeOn;                // true if direct mode is enabled
  352.     } gxDirectModeInfo;
  353.  
  354. enum { gxFormatHalftoneTag = 'half' };
  355.  
  356.     typedef struct {
  357.         long numHalftones;                    // how many halftones
  358.         gxHalftone    halftones[1];             // any number of halftones
  359.     } gxFormatHalftoneInfo;
  360.  
  361. enum { gxInvertPageTag = 'invp' };
  362.  
  363.     typedef struct    {
  364.         Boolean        invert;                        // true -> invert the page
  365.     } gxInvertPageInfo;                            // missing | false -> don't invert the page
  366.  
  367. enum { gxFlipPageHorizontalTag = 'flph' };
  368.  
  369.     typedef struct    {
  370.         Boolean        flipHorizontal;        // true -> flip x coordinates on the page
  371.     } gxFlipPageHorizontalInfo;            // missing | false -> don't flip horizontally
  372.     
  373. enum { gxFlipPageVerticalTag = 'flpv' };
  374.  
  375.     typedef struct    {
  376.         Boolean        flipVertical;            // true -> flip y coordinates on the page
  377.     } gxFlipPageVerticalInfo;                // missing | false -> don't flip vertically
  378.     
  379. enum { gxPreciseBitmapsTag = 'pbmp' };
  380.     
  381.     typedef struct {
  382.         Boolean        preciseBitmaps;        // true -> scale the page by 96%
  383.     } gxPreciseBitmapInfo;                    // missing | false -> don't scale the page by 96%
  384.  
  385.  
  386.  
  387. /*-----------------------------*/
  388. /* paperType collection tags...*/
  389. /*-----------------------------*/
  390.  
  391.  
  392.  
  393. enum { gxBaseTag = 'base' };
  394.  
  395.     enum {                                            // for baseType field in baseTag
  396.         gxUnknownBase        =    0,                        // base paper type from which this paper type is
  397.         gxUSLetterBase        =    1,                        // derived.  This is not a complete set.
  398.         gxUSLegalBase        =    2,
  399.         gxA4LetterBase        =    3,
  400.         gxB5LetterBase        =    4,
  401.         gxTabloidBase        =    5
  402.     };
  403.     
  404.     typedef struct {
  405.         long baseType;                            // paperType's base type
  406.     } gxBaseInfo;
  407.  
  408. enum { gxCreatorTag = 'crea' };
  409.  
  410.     enum {                                        // for creator field in creatorTag
  411.         gxSysPaperType            =    'sypt',        // system paper type creator
  412.         gxUserPaperType        =    'uspt'        // user paper type creator
  413.                                                         // if driver paperTypes then = driver's creator type
  414.     };
  415.     
  416.     typedef struct {
  417.         OSType creator;                        // paperType's creator
  418.     } gxCreatorInfo;
  419.  
  420. enum { gxUnitsTag = 'unit' };
  421.  
  422.     enum {                                        // for units field in unitsTag
  423.         gxPicas                    =    (char) 0,    // pica measurement
  424.         gxMMs                        =    (char) 1,    // millimeter measurement
  425.         gxInches                    =    (char) 2        // inches measurement
  426.     };
  427.     
  428.     typedef struct {
  429.         char units;                                // paperType's units
  430.     } gxUnitsInfo;
  431.  
  432. enum { gxFlagsTag = 'flag' };
  433.  
  434.     enum {                                        // paper type flags (bit positions)
  435.         gxOldPaperTypeFlag                =    0x00800000,    // indicates a paper type with 7.0 settings
  436.         gxNewPaperTypeFlag                =    0x00400000,    // indicates a paper type with post 7.0 settings
  437.         gxOldAndNewPaperTypeFlag        =    0x00C00000,    // indicates a paper type that's both old and new
  438.         gxFixedPrintArea                    =    0x00200000,    //    indicates the margins cannot change when format for a different device
  439.         gxDefaultPaperTypeFlag            =    0x00100000,    //    indicates the default paper type in the group    
  440.         gxDefaultBasePT                    =    0x00080000    //    indicates the default paper type for a specific base type (e.g. US Letter)
  441.     };
  442.     
  443.     typedef struct {
  444.         long flags;                                // paperType's flags
  445.     } gxFlagsInfo;
  446.  
  447. enum { gxCommentTag = 'cmnt' };
  448.  
  449.     typedef struct {
  450.         Str255 comment;                        // paperType's comment
  451.     } gxCommentInfo;
  452.  
  453.  
  454.  
  455. /*---------------------------*/
  456. /* printer viewDevice tags...*/
  457. /*---------------------------*/
  458.  
  459.  
  460.  
  461. enum { gxPenTableTag = 'pent' };
  462.  
  463.     enum {                    // possible values for the flags field in the PenTableEntry structure
  464.         gxDeviceUnits = 0,
  465.         gxMMUnits = 1,
  466.         gxInchesUnits = 2
  467.     };
  468.     
  469.     enum {    
  470.           gxPenNotLoaded     = -1
  471.     };
  472.     
  473.     typedef struct { 
  474.         Str31      penName;            // name of the pen
  475.         gxColor     penColor;            // color that is part of the color set
  476.         fixed      penThickness;    // size of the pen
  477.         short      penUnits;            // specifies units in which pen thickness is defined
  478.         short      penPosition;        // pen position in the carousel, -1 (kPenNotLoaded) if not loaded
  479.     } gxPenTableEntry;
  480.          
  481.          
  482.     typedef struct {
  483.         long                    numPens;        // number of pen entries in the following array
  484.         gxPenTableEntry    pens[1];        // array of pen entries
  485.     } gxPenTable, *gxPenTablePtr, **gxPenTableHdl;
  486.  
  487.  
  488.  
  489. /*----------------------------------------*/
  490. /* dialog-related constants and types...  */
  491. /*----------------------------------------*/
  492.  
  493.  
  494.  
  495. typedef long gxDialogResult;
  496.  
  497. enum {
  498.     gxCancelSelected        = (gxDialogResult) 0,
  499.     gxOKSelected             = (gxDialogResult) 1,
  500.     gxRevertSelected        = (gxDialogResult) 2
  501. };
  502.  
  503.  
  504. typedef struct {
  505.     short    editMenuID;
  506.     short    cutItem;
  507.     short    copyItem;
  508.     short    pasteItem;
  509.     short    clearItem;
  510.     short    undoItem;
  511. } gxEditMenuRecord;
  512.  
  513.  
  514. /*-----------------------------------------*/
  515. /* job format mode constants and types...  */
  516. /*-----------------------------------------*/
  517.  
  518.  
  519.  
  520. typedef long gxQueryType;
  521.  
  522. enum {
  523.     gxGetJobFormatLineConstraintQuery        = (gxQueryType)  0,
  524.     gxGetJobFormatFontsQuery                    = (gxQueryType)  1,
  525.     gxGetJobFormatFontCommonStylesQuery        = (gxQueryType)  2,
  526.     gxGetJobFormatFontConstraintQuery        = (gxQueryType)  3,
  527.     gxSetStyleJobFormatCommonStyleQuery        = (gxQueryType)  4
  528. };
  529.  
  530.  
  531. typedef OSType gxJobFormatMode;
  532.  
  533. enum {
  534.     gxGraphicsJobFormatMode        = (gxJobFormatMode) 'grph',
  535.     gxTextJobFormatMode            = (gxJobFormatMode) 'text',
  536.     gxPostScriptJobFormatMode     = (gxJobFormatMode) 'post'
  537. };
  538.  
  539.  
  540. typedef struct {
  541.     long                    numModes;
  542.     gxJobFormatMode    modes[1];        // any number of modes
  543. } gxJobFormatModeTable, *gxJobFormatModeTablePtr, **gxJobFormatModeTableHdl;
  544.  
  545.  
  546. enum { gxConstraintRange = -1 };    // in numSizes field of PositionConstraintTable to indicate a range in sizes array
  547.  
  548.  
  549. typedef struct {                        // for text mode    
  550.     gxPoint    phase;
  551.     gxPoint    offset;
  552.     long        numSizes;
  553.     fixed        sizes[1];                // any number of sizes
  554. } gxPositionConstraintTable, *gxPositionConstraintTablePtr, **gxPositionConstraintTableHdl;
  555.  
  556. typedef struct {                        // for text mode
  557.     long            numStyleNames;            // number of style names
  558.     Str255        styleNames[1];            // any number of style names
  559. } gxStyleNameTable, *gxStyleNameTablePtr, **gxStyleNameTableHdl;
  560.  
  561. typedef struct {                        // for text mode
  562.     long            numFonts;                // number of font references
  563.     gxFont        fonts[1];                // any number of font references
  564. } gxFontTable, *gxFontTablePtr, **gxFontTableHdl;
  565.  
  566.  
  567.  
  568. /* ------------------------------------------------------------------------------
  569.  
  570.                                 Printing Manager API Functions
  571.  
  572. -------------------------------------------------------------------------------- */
  573.  
  574.  
  575. #define GXPUBLICAPIGLUE(selector) {0x203C, 0x0000, selector, 0xABFE}
  576.  
  577.  
  578. #ifdef __cplusplus
  579. extern "C" {
  580. #endif
  581.  
  582.  
  583. // Global Routines (Basic)
  584.  
  585.  
  586. pascal OSErr GXInitPrinting (void)
  587.     = GXPUBLICAPIGLUE(0);
  588.  
  589. pascal OSErr GXExitPrinting (void)
  590.     = GXPUBLICAPIGLUE(1);
  591.  
  592.  
  593. // Job Routines (Basic)
  594.  
  595.  
  596. pascal OSErr GXNewJob (gxJob *)
  597.     = GXPUBLICAPIGLUE(2);
  598.     
  599. pascal OSErr GXDisposeJob (gxJob)
  600.     = GXPUBLICAPIGLUE(3);
  601.      
  602. pascal void GXFlattenJob (gxJob, gxPrintingFlattenProc, void *)
  603.     = GXPUBLICAPIGLUE(4);
  604.     
  605. pascal gxJob GXUnflattenJob (gxJob, gxPrintingFlattenProc, void *)
  606.     = GXPUBLICAPIGLUE(5);
  607.      
  608. pascal Handle GXFlattenJobToHdl (gxJob, Handle)
  609.     = GXPUBLICAPIGLUE(6);
  610.     
  611. pascal gxJob GXUnflattenJobFromHdl (gxJob, Handle)
  612.     = GXPUBLICAPIGLUE(7);
  613.  
  614. pascal void GXInstallApplicationOverride (gxJob, short messageID, void *override)
  615.     = GXPUBLICAPIGLUE(8);
  616.  
  617.  
  618. // Format Routines (Basic)
  619.  
  620.  
  621. pascal gxFormat GXNewFormat (gxJob)
  622.     = GXPUBLICAPIGLUE(9);
  623.     
  624. pascal void GXDisposeFormat (gxFormat)
  625.     = GXPUBLICAPIGLUE(10);
  626.     
  627.                                 
  628. // PaperType Routines (Basic)
  629.  
  630.  
  631. pascal gxPaperType GXNewPaperType (gxJob, Str31 name, gxRectangle *pageSize, gxRectangle *paperSize)
  632.     = GXPUBLICAPIGLUE(11);
  633.     
  634. pascal void GXDisposePaperType (gxPaperType)
  635.     = GXPUBLICAPIGLUE(12);
  636.  
  637. pascal gxPaperType GXGetNewPaperType (gxJob, short resID)
  638.     = GXPUBLICAPIGLUE(13);
  639.  
  640.  
  641. // Error-Handling Routines (Basic)
  642.                     
  643.                                 
  644. pascal OSErr GXGetJobError (gxJob)
  645.     = GXPUBLICAPIGLUE(14);
  646.  
  647. pascal void GXSetJobError (gxJob, OSErr)
  648.     = GXPUBLICAPIGLUE(15);
  649.  
  650.  
  651. // Dialog Routines (Basic)
  652.                     
  653.                                 
  654. pascal gxDialogResult GXJobDefaultFormatDialog (gxJob, gxEditMenuRecord *)
  655.    = GXPUBLICAPIGLUE(16);
  656.  
  657. pascal gxDialogResult GXJobPrintDialog (gxJob, gxEditMenuRecord *)
  658.    = GXPUBLICAPIGLUE(17);
  659.  
  660. pascal gxDialogResult GXFormatDialog (gxFormat, gxEditMenuRecord *, StringPtr title)
  661.     = GXPUBLICAPIGLUE(18);
  662.  
  663.                                 
  664. // Format Routines (Basic)
  665.                     
  666.                                 
  667. pascal gxFormat GXGetJobFormat (gxJob, long whichFormat)
  668.     = GXPUBLICAPIGLUE(19);
  669.     
  670. pascal gxJob GXGetFormatJob (gxFormat)
  671.     = GXPUBLICAPIGLUE(20);
  672.  
  673. pascal gxPaperType GXGetFormatPaperType (gxFormat)
  674.     = GXPUBLICAPIGLUE(21);
  675.     
  676. pascal void GXGetFormatDimensions (gxFormat, gxRectangle *pageSize, gxRectangle *paperSize)
  677.     = GXPUBLICAPIGLUE(22);
  678.     
  679.  
  680. // Spooling Routines (Basic)
  681.                     
  682.                                 
  683. pascal void GXGetJobPageRange (gxJob theJob, long *firstPage, long *lastPage)
  684.     = GXPUBLICAPIGLUE(23);
  685.     
  686. pascal void GXStartJob (gxJob, StringPtr docName, long pageCount)
  687.     = GXPUBLICAPIGLUE(24);
  688.     
  689. pascal void GXPrintPage (gxJob, long pageNumber, gxFormat, gxShape thePage)
  690.    = GXPUBLICAPIGLUE(25);
  691.         
  692. pascal Boolean GXStartPage (gxJob, long pageNumber, gxFormat, long numViewPorts, gxViewPort *viewPortList)
  693.     = GXPUBLICAPIGLUE(26);
  694.  
  695. pascal void GXFinishPage (gxJob)
  696.     = GXPUBLICAPIGLUE(27);
  697.  
  698. pascal void GXFinishJob (gxJob)
  699.     = GXPUBLICAPIGLUE(28);
  700.     
  701.  
  702. // Job Routines (Advanced)
  703.                                             
  704.  
  705. pascal Collection GXGetJobCollection (gxJob)
  706.     = GXPUBLICAPIGLUE(29);
  707.  
  708. pascal void *GXGetJobRefCon (gxJob)
  709.     = GXPUBLICAPIGLUE(30);
  710.  
  711. pascal void GXSetJobRefCon (gxJob, void *refCon)
  712.     = GXPUBLICAPIGLUE(31);
  713.     
  714. pascal gxJob GXCopyJob (gxJob srcJob, gxJob dstJob)
  715.     = GXPUBLICAPIGLUE(32);
  716.  
  717. pascal void GXSelectJobFormattingPrinter (gxJob, Str31 printerName)
  718.     = GXPUBLICAPIGLUE(33);
  719.     
  720. pascal void GXSelectJobOutputPrinter (gxJob, Str31 printerName)
  721.     = GXPUBLICAPIGLUE(34);
  722.  
  723. pascal void GXForEachJobFormatDo (gxJob, gxFormatProc, void *refCon)
  724.     = GXPUBLICAPIGLUE(35);
  725.  
  726. pascal long GXCountJobFormats (gxJob)
  727.     = GXPUBLICAPIGLUE(36);
  728.  
  729. pascal Boolean GXUpdateJob (gxJob)
  730.     = GXPUBLICAPIGLUE(37);
  731.     
  732. pascal void GXConvertPrintRecord (gxJob, THPrint)
  733.     = GXPUBLICAPIGLUE(38);
  734.  
  735.  
  736. // Printer Routines (Advanced)
  737.  
  738.  
  739. pascal gxPrinter GXGetJobFormattingPrinter (gxJob)
  740.     = GXPUBLICAPIGLUE(39);
  741.     
  742. pascal gxPrinter GXGetJobOutputPrinter (gxJob)
  743.     = GXPUBLICAPIGLUE(40);
  744.     
  745. pascal gxPrinter GXGetJobPrinter (gxJob)
  746.     = GXPUBLICAPIGLUE(41);
  747.     
  748. pascal gxJob GXGetPrinterJob (gxPrinter)
  749.     = GXPUBLICAPIGLUE(42);
  750.  
  751. pascal void GXForEachPrinterViewDeviceDo (gxPrinter, gxViewDeviceProc, void *refCon)
  752.     = GXPUBLICAPIGLUE(43);
  753.  
  754. pascal long GXCountPrinterViewDevices (gxPrinter)
  755.     = GXPUBLICAPIGLUE(44);
  756.  
  757. pascal gxViewDevice GXGetPrinterViewDevice (gxPrinter, long    whichViewDevice)
  758.     = GXPUBLICAPIGLUE(45);
  759.     
  760. pascal void GXSelectPrinterViewDevice (gxPrinter, long    whichViewDevice)
  761.     = GXPUBLICAPIGLUE(46);
  762.     
  763. pascal void GXGetPrinterName (gxPrinter, Str31)
  764.     = GXPUBLICAPIGLUE(47);
  765.  
  766. pascal OSType GXGetPrinterType (gxPrinter)
  767.     = GXPUBLICAPIGLUE(48);
  768.  
  769. pascal void GXGetPrinterDriverName (gxPrinter, Str31)
  770.     = GXPUBLICAPIGLUE(49);
  771.  
  772. pascal OSType GXGetPrinterDriverType (gxPrinter)
  773.     = GXPUBLICAPIGLUE(50);
  774.  
  775.  
  776. // Format Routines (Advanced)
  777.  
  778.  
  779. pascal Collection GXGetFormatCollection (gxFormat)
  780.     = GXPUBLICAPIGLUE(51);
  781.  
  782. pascal void GXChangedFormat (gxFormat)
  783.     = GXPUBLICAPIGLUE(52);
  784.  
  785. pascal gxFormat GXCopyFormat (gxFormat srcFormat, gxFormat dstFormat)
  786.     = GXPUBLICAPIGLUE(53);
  787.     
  788. pascal gxFormat GXCloneFormat (gxFormat)
  789.     = GXPUBLICAPIGLUE(54);
  790.         
  791. pascal long GXCountFormatOwners (gxFormat)
  792.     = GXPUBLICAPIGLUE(55);
  793.         
  794. pascal void GXGetFormatMapping (gxFormat, gxMapping *)
  795.     = GXPUBLICAPIGLUE(56);
  796.  
  797. pascal gxShape GXGetFormatForm (gxFormat, gxShape *mask)
  798.     = GXPUBLICAPIGLUE(57);
  799.     
  800. pascal void GXSetFormatForm (gxFormat, gxShape form, gxShape mask)
  801.     = GXPUBLICAPIGLUE(58);
  802.  
  803.  
  804. // Job Format Modes Routines (Advanced)
  805.  
  806.  
  807. pascal void GXSetAvailableJobFormatModes (gxJob, gxJobFormatModeTableHdl)
  808.     = GXPUBLICAPIGLUE(59);
  809.  
  810. pascal gxJobFormatMode GXGetPreferredJobFormatMode (gxJob, Boolean *directOnly)
  811.     = GXPUBLICAPIGLUE(60);
  812.  
  813. pascal gxJobFormatMode GXGetJobFormatMode (gxJob)
  814.     = GXPUBLICAPIGLUE(61);
  815.  
  816. pascal void GXSetJobFormatMode (gxJob, gxJobFormatMode)
  817.     = GXPUBLICAPIGLUE(62);
  818.  
  819. pascal void GXJobFormatModeQuery (gxJob, gxQueryType, void *srcData, void *dstData)
  820.     = GXPUBLICAPIGLUE(63);
  821.  
  822.  
  823. // Dialog Routines  (Advanced)
  824.  
  825.  
  826. pascal void GXEnableJobScalingPanel (gxJob, Boolean enabled)
  827.     = GXPUBLICAPIGLUE(64);
  828.  
  829. pascal void GXGetJobPanelDimensions (gxJob, Rect *)
  830.     = GXPUBLICAPIGLUE(65);
  831.  
  832.  
  833. // PaperType Routines (Advanced)
  834.  
  835.  
  836. pascal long GXCountJobPaperTypes (gxJob, Boolean forFormatDevice)
  837.     = GXPUBLICAPIGLUE(66);
  838.  
  839. pascal gxPaperType GXGetJobPaperType (gxJob, long whichPaperType, Boolean forFormatDevice, gxPaperType)
  840.     = GXPUBLICAPIGLUE(67);
  841.  
  842. pascal void GXForEachJobPaperTypeDo (gxJob, gxPaperTypeProc, void *refCon, Boolean forFormattingPrinter)
  843.     = GXPUBLICAPIGLUE(68);
  844.  
  845. pascal gxPaperType GXCopyPaperType (gxPaperType srcPaperType, gxPaperType dstPaperType)
  846.     = GXPUBLICAPIGLUE(69);
  847.  
  848. pascal void GXGetPaperTypeName (gxPaperType, Str31)
  849.     = GXPUBLICAPIGLUE(70);
  850.  
  851. pascal void GXGetPaperTypeDimensions (gxPaperType, gxRectangle *pageSize, gxRectangle *paperSize)
  852.     = GXPUBLICAPIGLUE(71);
  853.  
  854. pascal gxJob GXGetPaperTypeJob (gxPaperType)
  855.     = GXPUBLICAPIGLUE(72);
  856.  
  857. pascal Collection GXGetPaperTypeCollection (gxPaperType)
  858.     = GXPUBLICAPIGLUE(73);
  859.  
  860.  
  861. // PrintViewer Routines (Advanced)
  862.  
  863.  
  864. pascal gxPrintFile GXOpenPrintFile (gxJob, FSSpecPtr, char permission)
  865.     = GXPUBLICAPIGLUE(74);
  866.  
  867. pascal void GXClosePrintFile (gxPrintFile)
  868.     = GXPUBLICAPIGLUE(75);
  869.  
  870. pascal gxJob GXGetPrintFileJob (gxPrintFile)
  871.     = GXPUBLICAPIGLUE(76);
  872.  
  873. pascal long GXCountPrintFilePages (gxPrintFile)
  874.     = GXPUBLICAPIGLUE(77);
  875.  
  876. pascal void GXReadPrintFilePage (gxPrintFile, long pageNumber, long numViewPorts, gxViewPort *viewPortList, gxFormat *, gxShape *)
  877.     = GXPUBLICAPIGLUE(78);
  878.  
  879. pascal void GXReplacePrintFilePage (gxPrintFile, long pageNumber, gxFormat, gxShape)
  880.     = GXPUBLICAPIGLUE(79);
  881.  
  882. pascal void GXInsertPrintFilePage (gxPrintFile, long atPageNumber, gxFormat, gxShape)
  883.     = GXPUBLICAPIGLUE(80);
  884.  
  885. pascal void GXDeletePrintFilePageRange (gxPrintFile, long fromPageNumber, long toPageNumber)
  886.     = GXPUBLICAPIGLUE(81);
  887.  
  888. pascal void GXSavePrintFile (gxPrintFile, FSSpec *)
  889.     = GXPUBLICAPIGLUE(82);
  890.  
  891.  
  892. // ColorSync Routines (Advanced)
  893.  
  894.  
  895. pascal long GXFindPrinterProfile (gxPrinter, void * searchData, long index, gxColorProfile * returnedProfile)
  896.     = GXPUBLICAPIGLUE(83);
  897.     
  898. pascal long GXFindFormatProfile (gxFormat, void * searchData, long index, gxColorProfile * returnedProfile)
  899.     = GXPUBLICAPIGLUE(84);
  900.  
  901. pascal void GXSetPrinterProfile (gxPrinter, gxColorProfile oldProfile, gxColorProfile newProfile)
  902.     = GXPUBLICAPIGLUE(85);
  903.  
  904. pascal void GXSetFormatProfile (gxFormat, gxColorProfile oldProfile, gxColorProfile newProfile)
  905.     = GXPUBLICAPIGLUE(86);
  906.  
  907.  
  908. #ifdef __cplusplus
  909. }
  910. #endif
  911.  
  912.  
  913. #endif __PRINTINGMANAGER__
  914.